注意:所有文章除特别说明外,转载请注明出处.
剑指Offer - Redis
[TOC]
问题1:Redis查询速度快的原因(100000+QPS(每秒内查询次数))
1.完全基于内存,绝大部分请求是纯粹的内存操作,执行效率高
2.数据结构简单,对数据操作也简单
3.采用单线程,单线程也能处理高并发请求,想多核也可以启动多实例
4.使用多路IO复用模型,非阻塞IO
多路IO复用模型
Redis采用的IO多路复用函数:epoll | kqueue | evport | select
1.因地制宜
2.优先选择时间复杂度为O(1)的IO多路复用函数作为底层实现
3.以时间复杂度为O(N)的select作为保底
4.基于react设计模式监听IO事件
问题2:Redis常用数据类型
1.String 最基本的数据类型,二进制安全
2.HASH String元素组成的字典,适合用于存储对象
3.LIST 列表,按照String元素插入顺序排序
4.SET String元素组成的无序集合,通过hash表实现,不允许重复
5.Sorted Set 通过分数来为集合中的成员进行从小到大的排序